/*
 * Via.h
 *
 *  Created on: May 30, 2013
 *      Author: root
 */

#ifndef VIA_H_
#define VIA_H_

#include "utils/Point.h"
#include <list>
#include "model/Connector.h"

class Via : public virtual Component {

protected:
	unsigned m_exitNumber; //ojo con esto (?!)
	std::list< Point*> m_points;

    Connector* m_startConnector;
    Connector* m_endConnector;

public:
	Via();
	virtual ~Via();

    void setExitNumber(unsigned componentExit);
	unsigned getExitNumber() const;

    void setStartConnector( Connector* c);
    Connector* getStartConnector();

    void setEndConnector( Connector* c);
    Connector* getEndConnector();

    void addPoint( Point* p, std::list< Point* >::iterator it);
    void addPointAtEnd( Point* point);
    void removePoint( Point* p);
    std::list< Point* >& getPoints();
};

#endif /* VIA_H_ */
